Software streaming involves downloading small pieces of files as the pieces are needed by the program being streamed. These small pieces may be referred to as blocks. A streaming client sends requests for blocks as they are needed up to a streaming server, which sends back streaming data that is associated with the requested block. Sending a request and receiving the streaming data may cause delays that can slow down the streamed program.
There are many problems associated with streaming software that it would be advantageous to negate, work around, or reduce. For example, speeding up execution of streaming programs is an on-going issue. As another example, streaming to devices that occasionally lose a connection has not been satisfactorily addressed. As another example, it may be desirable to provide a user with an experience similar to that associated with an installed, as opposed to streamed, program. As another example, it may be desirable to provide streamed programs on consoles.